home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
9508
/
MSTEST.CD
< prev
next >
Wrap
Text File
|
1996-03-22
|
11KB
|
174 lines
@VMicrosoft Test 3.0@N
@VAutomata belsô ellenôr@N
A fôleg felhasználói szoftvereirôl híres Microsoft
programfejlesztô eszközei csak egy szûkebb kör számára
ismertek. Közülük sem mindenki találkozott a
programellenôrzésre alkalmas Microsoft Testtel.
Napjainkban egyre nagyobb szerepet kapnak a nagy
létszámú programozócsoportok által fejlesztett nagy
rendszerek. Ez a felállás nem kedvez a hibák felderítésének,
hiszen egy sok funkcióval rendelkezô program hibái akár a
mûveletek sorrendjétôl függôen is rejtve maradhatnak. Mivel
a Windows és Windows NT alatt futó programok többnyire ebbe
a csoportba tartoznak, a Microsoft automatizált
tesztrendszert jelentetett meg erre a két platformra.
Az automatizált ellenôrzés nagy elônye, hogy elkészítése
csak egyszeri ráfordítást igényel -- noha ez hosszabb, mint
az egyszeri, kézi ellenôrzés --, ám ismételt futtatása ezek
után emberi beavatkozás nélkül, lényegesen rövidebb idô
alatt is megoldható. Alapos teszteléshez elkészíthetô tehát
olyan módszer, ahol a nappal létrehozott program mûködését
az automatizált éjszakai tesztelés után egy naplófile
alapján lehet ellenôrizni. Mivel egy Windows alapú program
viselkedését nagyban befolyásolja a környezet állapota
(szabad erôforrások stb.), a tesztrendszernek ezeket a külsô
körülményeket is kézben kell tartania.
A Test Windows 3.1 vagy Windows NT környezetben képes
programok gépesített tesztelését elvégezni. 32 bites,
Windows NT alatti tesztelést Intel, Alpha vagy MIPS
processzoros rendszerekben végezhetünk. A Test elosztott
rendszerben, NetBIOS-kompatiblis hálózaton is fut. Alapvetô
feladata egy elôre meghatározott tesztadatsorral (felvett
makróval vagy programozott script-állománnyal) ellenôrizni a
Windows alatt futó programok helyes mûködését,
összehasonlítva a kimenet különféle fajtáit egy etalonnal.
A tesztállomány létrehozásának egyszerûbb módszere a
felvett makrók alkalmazása. Ebben az esetben fizikai
egérmozgatás és/vagy billentyûzet használata szolgál
ellenôrzésre. A módszer elônye, hogy hatása a programozás
közben is azonnal megfigyelhetô; hátránya, hogy bizonyos
dolgok (pl. programindítás kettôs kattintással) nem biztos,
hogy minden esetben azonos módon zajlanak le, így csak
korlátozottan használhatók fel.
Bonyolultabb tesztsorozatok hozhatóak létre a Test saját
programozási nyelvének, a TestBasicnek a felhasználásával.
Ebben az esetben gyakorlatilag teljes ellenôrzést
gyakorolhatunk a futtatott program felett. Maga a
tesztleírás (script) a jól ismert Basic programozási nyelvre
épített parancskészletet használhat fel, kiegészítve egy sor
hasznos lehetôséggel. Ezek közé tartozik a feltételes
fordítás, a C nyelvre emlékeztetô makrók használata, a
többféle strukturált ciklus, az elágazó Case, függvények és
szubrutinok; a TestBasic tudása körülbelül annyira tér el
egy valódi Basic nyelvtôl, mint a WinWord WordBasicje vagy a
Visual Basic. Fordításkor kiértékelt kifejezésekkel és
szimbólumokkal gyakorlatilag egy assembler vagy C fordító
által nyújtott szabadságot élvezhetünk. Lemezkezelést a
""szokásos" file-mûveletekkel (OPEN, GET, PUT, CLOSE, SEEK
stb.) valósíthatunk meg; a rendszer megkülönbözteti a
bináris és szöveg állományokat.
A windowsos környezethez alkalmazkodva a TestBasic
alkalmas DLL-felhasználásra és a szabad memória méretének
változtatására is. Az eseményvezérelt jellegû alkalmazások
igényeihez alkalmazkodik a visszahívásos, ablakkezelô vagy
dialógus (callback, window vagy dialog) pointerek kezelése.
A fellépô hibákat és eseményeket (pl. ablak létrehozása,
törlése, megszakítások) kivételekként kezelhetjük. Ez a
lehetôség még a Windowst használók rémálmára, az UAE-re
(Unrecoverable Application Error) is vonatkozik, hiszen egy
alapos tesztelés nélküli program okozhat ilyen hibát is. A
pointeraritmetika nem éri el a szabványos C szintjét, ám így
is jól használható. A TestBasic programozás során nem kapunk
azonnal visszajelzést a programról, annak futtatásáról külön
funkció gondoskodik. Maga a program forráskódként hordozható
a különbözô platformok között, futtatáskor azonban p-kóddá
fordul. Ezzel a módszerrel csökken a futtatás
erôforrásigénye, és sebességi elônyre is szert tesz egy
tisztán interpreteres megvalósításhoz képest.
A bemeneti adatok szolgáltatása utáni feladat a kimenet
állapotának tárolása, az eltérések naplózása. A vizsgálat a
grafikus megjelenítésen kívül vezérlôk (control) állapotára,
helyzetére vonatkozhat, bonyolultabb esetekben DDE és
hálózati kommunikációs állapotot is elemezhetünk. Mind a
DDE, mind a hálózati rész lehetôvé teszi kliens és szerver
megvalósítását.
Hálózati forgalom mellett a Test javaslatot tesz néhány
kiemelt Windows paraméterre, így például idôzítési problémák
miatt nem javasolja képernyôvédô alkalmazás futtatását. A
vezérlôk esetében a helyzet és az állapot helyességén kívül
lekérdezhetôk akár az ismétlôdô hotkey kombinációk is,
természetesen minden alap Windows vezérlôre saját
függvénycsoport vonatkozik. Mindezeket az ablakokra, mint
speciális vezérlôkre is alkalmazhatjuk (átméretezés,
elhelyezkedés, ablak megkeresése stb.). A vezérlôknél
közvetlenül beavatkozhatunk a billentyûzet és/vagy az egér
tevékenységét rögzítô sorba (queue), természetesen a
begépelt szövegen kívül a gépelés sebessége is
változtatható.
Windows NT alatt a Test megkülönbözteti az egyes szálak
(thread) ""saját billentyûzetének" állapotát. Windows NT
környezetben a szigorú jogosultsági ellenôrzés miatt külön
figyelmet kell fordítani a tesztelt program futtatási
keretére. (A teszt script feladata a processz létrehozása és
konzolablakának megnyitása.) Talán a legfurcsább alkalmazás
a DOS ablakban futó programok állapotának követése; erre a
kézikönyv DOS ablakban futtatott C fordítást hoz fel
példaként, amelynek állapotát folyamatosan követi egy
állapotablak. Az átirányítások kezelésére néhány esetben
globális Windows paraméter beállításra lehet szükség (a
pipe-buffer méretének növelése). Åtirányított kimenet
ellenôrzésével oldható meg például DOS ablakban futtatott
program kimenetétôl függô végrehajtás.
A képernyôtartalom egyezése jelenthet teljes egyezést
vagy fuzzy, nem pixelre megegyezô azonosságot. Ez utóbbi
bizonyos szabadságot enged meg a hasonlításoknál. További
lehetôség a változó képrészletek (órák, dinamikus vezérlôk)
vizsgálatának letiltása; ezeket a részleteket kizárhatjuk az
elemzésbôl. A valamilyen okból érdekes képeket vagy
dialóguselemeket képkönyvtárakba menthetjük. Az
egyezésvizsgálatok elôtt megtekinthetô az etalon képernyô,
majd csak az eltéréseket kiemelô ábra. A fuzzy
egyezésvizsgálatot nem tudtuk alaposan tesztelni; néhány
egyszerûbb példánál kielégítô eredményeket értünk el vele.
Az alap Basicnél fejlettebb lehetôségek a teljes
rekurzió, a dinamikus memóriakezelés és a file-listák
alkalmazása. A file-listák létrehozása és szerkesztése olyan
felsorolást hoz létre, amely tetszôlegesen bonyolult módon
válogatott és szûrt file-azonosítókat tartalmaz. Ezeket a
@KFOR...NEXT@N speciális változatával tudjuk kezelni; így
oldható meg például egy dinamikusan bôvíthetô tesztsorozat
összeállítása. A tesztelôcsoport feladata csak a megfelelô
névvel ellátott script állományok létrehozása, amelyeket a
fôprogram automatikusan, például éjszaka képes elindítani.
A Test része az Interface Editor, amely a scriptek
rendelkezésére álló dialógusok és menük szerkesztésére
használható. Segítségével ""közönséges" ablakokon és
menüsorokon kívül teszt-menük (Test System Menus) hozhatók
létre; az utóbbi csoport a scriptbôl menüként és ikonsorként
hívható elô. A dialógusok szerkesztésénél az
objektumorientált rendszer paraméterei a Microsoft
programjaitól megszokott módon módosíthatóak. A megalkotott
objektumok külsô erôforrásként emelhetôk a scriptbe,
szabadon megválasztható paraméterekkel (pl. minimalizált
indítás).
A 32 bites NT és a 16 bites Windows 3.1 platformra
készült változat között nagyon fontos különbség az utóbbiban
fellépô 16 bites globális, stack és string hosszkorlátozás.
A rendszer a Windows 3.1 alatti futási idôben elôforduló
túllépéseket hibaüzenetként teszi feldolgozhatóvá. A többi
eltérés zömében erre vezethetô vissza, illetve a Windows NT
alatti különleges szolgáltatásokra (pl. deadlock
elkerülése). A Test automatikusan kezeli az adatok
szóhatárra igazítását nem Intel processzorok esetében.
A Microsoft Test felsorolt tulajdonságai miatt kitûnôen
alkalmas Windows alatti helyességellenôrzésre. A kézikönyv
ugyan nem emeli ki a lehetôséget, ám figyelemre méltó
demókat sikerült létrehoznunk a segítségével. (Igaz, a
rendszer mérete meghaladja a csak demóírásra kifejlesztett
programokét.) Összességében a Microsoft Test sokoldalúan
alkalmazható segédeszköz a Windows alatti fejlesztés
támogatására.
@KVisegrády Tamás@N
@KTovábbi információk: Microsoft Szoftver Információ,
@Ktel.: 2-MSINFO (267-4636)@N
@<9508\TEST1.GIF>■■@N Nem játék -- TESZT!
@<9508\TEST2.GIF>■■@N ... valamint a forráskód részlete
@<9508\TEST3.GIF>■■@N Válogatás a példák között